package com.kylin.common.core.validator.constraint;

import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;

/**
 * 字段重复校验
 *
 * @author wuhao
 * @version 1.0 - 2020/9/2
 * @since 1.3.0
 */
// 参考： https://www.cnblogs.com/zhengqing/p/11571957.html

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.PARAMETER, ElementType.FIELD, ElementType.TYPE})
@Constraint(validatedBy = NotRepeatValidatorClass.class)
//@Repeatable(LinkVals.class)(可重复注解同一字段，或者类，java1.8后支持）
public @interface NotRepeat {

    /**
     * 实体类id字段 - 默认为id （该值可无）
     * @return
     */
    String id() default "id";

    /**
     * 注解属性 - 对应校验字段
     * @return
     */
    String field();

    /**
     * 默认错误提示信息
     * @return
     */
    String message() default "字段内容重复！";

    Class<?>[] groups() default {};
    Class<? extends Payload>[]  payload() default {};

}
